#include "Moisture.h"

#include "MoistureConfig.h"

#define MOISTURE_AIN AIN(MOISTURE_ADC)

/**
 * @brief 湿度传感器初始化
 * 
 */
void Moisture_init()
{
    ADC_init(MOISTURE_AIN, PERIOD_32sys, VREFS_VDD);
}

uint16_t Moisture_directV()
{
    return (ADC_getVoltageSync(MOISTURE_ADC));
}

/**
 * @brief 读取湿度传感器的湿度
 * 
 * @return uint8_t 读取湿度百分比
 */
uint8_t Moisture_get()
{
    double adc_value = (double)(ADC_getVoltageSync(MOISTURE_ADC));
    double moisture_result = (adc_value-MOISTURE_0)/(MOISTURE_100-MOISTURE_0)*100;
    if(moisture_result < 0)
    {
        moisture_result = 0;
    }
    if(moisture_result > 100)
    {
        moisture_result = 100;
    }
    return (uint8_t)moisture_result;
}
